草庐IT

HTTP 服务器

全部标签

angularjs - 从 angularJS 发送 JSON 数据,以便 Go 服务器可以解析为结构

我在我的客户端中使用angularJS$resource并想创建一个自定义PATCH函数,我将数据发送到我的GO服务器。我想将我的GO服务器上的数据解析为一个结构。我尝试像下面的代码一样发送数据,但GO服务器将值输出为“[objectObject]”,并在我尝试编码(marshal)它时生成错误。数据是否应该作为PATCH的查询字符串包含在内,还是可以/应该包含在请求正文中?varUpdateOneSchedule=$resource('/schedules/me/:bkchangeobject',{bkchangeobject:{}},{update:{method:'PATCH',

memory - 如何让我的服务器(用 Golang 编写)不会耗尽内存?

我有一个小型服务器,它必须处理大量文件。这些文件通过PUT请求发送到服务器。我正在为服务器使用net/http包。我知道对于每个请求都会打开一个goroutine。但问题是请求完成后,处理程序使用的内存没有释放。服务器(应该)在具有1GB内存的树莓派3上运行。问题是当我发送大量文件时内存不足。此时我已经等不及垃圾收集器释放内存了。这两个主题是关于问题的:Whyisthememoryblocknotcleanedbythegarbagecollector?Go1.3Garbagecollectornotreleasingservermemorybacktosystem但是我的问题没有解决

http - Golang http 重定向奇怪的行为

我有一个登录页面(login.html),它使用Javascript在后端调用golang服务。成功登录后,用户应被带到仪表板页面(dashboard.html)。相反,仪表板页面在登录页面的中间打开,如下所示:相关代码为:funcuserhandler(whttp.ResponseWriter,r*http.Request,subcommandstring){...//Ifthecredentialsarevalid,gototheDashboardpageifvalidateLoginCredentials([]byte(loginUsername),[]byte(loginPas

go - 非对等服务器上的分布式计算

我有一组任务,每个任务都需要满足某些特定条件。例如,任务需要100Mb的RAM才能执行。我还有多个放置worker的服务器。每个worker都有一些配置来描述它拥有多少资源。例如,一些工作人员可以使用1Gb的RAM来执行任务。是否有在worker之间分配任务的系统,以便每个worker满足传递给它的任务的要求?或者也许我可以通过消息代理(例如RabbitMQ)以某种方式做到这一点?我知道为此编写自己的应用程序,因为我不想重新发明轮子。Worker是用Go编写的。 最佳答案 RabbitMQ并没有明确地知道关于它的客户端的这些事情。它

ios - 如何使用 NSData 在我的 Golang 服务器上读取我从 iOS 发布的 JSON?

我正在尝试通过将收据从iOS发送到我的自定义服务器来验证收据。我有我的NSMutableURLRequest并将其设置为:letbody:[String:AnyObject]=["receipt":receipt,"prod_id":productID]letoptionalJson:NSData?do{optionalJson=tryNSJSONSerialization.dataWithJSONObject(body,options:[])}catch_{optionalJson=nil}guardletjson=optionalJsonelse{return}request.HT

go - 无法对允许向服务器发送文本消息的客​​户端进行编程

所以我编写了一个服务器,它从连接的客户端接收文本消息,将它们反转并大写,然后发回。现在我正在尝试对客户端进行编程,以便在我启动它时它会一直运行,直到我将其关闭(ctrl+c)并允许我输入文本行并将它们发送到服务器。但我有一个问题-如果我将一个西里尔符号传递给输入,它将返回一个(类型,值)错误,除非我以某种方式刷新内存,否则将一直存在错误。我也不知道如何读取整条消息(整条消息意味着slice的大小(1024字节))而不是单独读取每个单词。此外,我如何确定如何延迟“输入您的消息”文本?根据我传递给服务器的消息的长度,它应该等待更长或更短。如果消息被分成几条消息,我不希望它在收到答案后只弹出

http - 无法在 Go 中调用 http.HandleFunc

我对Backbone和Go还很陌生,尝试根据URL调用函数。这是我在Router中的代码,请求从那里转到Go页面。collection.fetch({url:"/bands"}).done(function(data){console.log("hello");});这是我处理所有请求的代码:funcviewHandler(whttp.ResponseWriter,r*http.Request){fmt.println("inviewHandler")}funcmain(){http.Handle("/",http.FileServer(http.Dir("../")))http.Ha

http - 提供大型视频文件失败

我正在使用EchoFramework的静态文件处理程序来处理上传目录中的上传文件。e:=echo.New()e.Static("/uploads","uploads")这适用于较小的视频文件。我已经用20MB的视频文件对其进行了测试,效果很好。较大的文件(例如50MB的测试文件)不起作用。底层TCP连接在整个文件被提供之前关闭。有谁知道是否有文件大小限制或可以设置计时器来防止这种情况发生? 最佳答案 您正在寻找echo.File()。此方法提供更长的文件,例如您的文件,因为http.FileServer()和echo.File()中

http - 即使响应没有缓存 header ,文件也会被浏览器缓存

varepoch=time.Unix(0,0).Format(time.RFC1123)varheaders=map[string]string{"Expires":epoch,"Cache-Control":"no-cache,private,max-age=0","Pragma":"no-cache","X-Accel-Expires":"0",}log.Errorln("nocacheheader")fork,v:=rangeheaders{rw.Header().Set(k,v)}http.ServeFile(rw,req,path)我的服务器端有上面的代码块来处理文件请求。但

file-upload - 如何使用os.Open()的返回值作为http.Post()的第三个参数并设置Content-Length?

http.Post()的第三个参数允许io.Reader,这意味着os.Open()的返回值应该工作。但是下面的代码得到了意想不到的结果,换句话说,它不会正确设置Content-Length。也许File类型没有实现某些东西。有什么正确的方法可以用*File设置Content-Length吗?packagemainimport("bytes""io/ioutil""log""net/http""net/http/httptest""os")varsample=[]byte(`hello`)funcmain(){ts:=httptest.NewServer(http.HandlerFun